package b_lambda;
/*
    接口的实现类
 */
public class MyInterfaceImpl{
    //接口作为方法参数使用
    public static int method1(MyInterface in){
        return in.sum(1,3);
    }

    public static int method2(MyInterface in,int a,int b){
        return in.sum(a,b);
    }

    //主方法
    public static void main(String[] args) {
        //匿名内部类实现
        MyInterfaceImpl.method1(new MyInterface() {
            @Override
            public int sum(int a, int b) {
                return a + b;
            }
        });

        //优化
        MyInterfaceImpl.method1(
                (int a, int b) -> {return a + b;});

        //继续优化:
        // {}、return、; 是一个整体，要么一起留下，要么一起删除
        MyInterfaceImpl.method1((a,b) -> a + b);


        System.out.println("------------------------------------");

        MyInterfaceImpl.method2(new MyInterface() {
            @Override
            public int sum(int a, int b) {
                return a + b;
            }
        }, 10, 20);

        //优化：
        MyInterfaceImpl.method2((a,b) -> a + b,10,20);
    }
}
